导入 sys
导入 os

sys.path.追加(os.路径.绝对路径(r'G:\grasspy_zwmodules\pywebio\zwpywebio\src'))

从 网页io 导入 启动服务器
从 网页io.输入 导入 *
从 网页io.输出 导入 *

套路 主函数():
    """BMI 计算

    计算BMI指数的简单应用
    """

    输出md("""# BMI指数

    [`BMI指数`](https://baike.baidu.com/item/%E4%BD%93%E8%B4%A8%E6%8C%87%E6%95%B0/1455733)（Body Mass Index，BMI），是用体重千克数除以身高米数的平方得出的数字，是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
    
    成年人的BMI值处于以下阶段
    
    | 体形分类 | BMI值范围 |
    | ------ | -------- |
    | 极瘦    | BMI<14.9    |
    | 偏瘦    | 14.9≤BMI<18.4     |
    | 正常    | 18.4≤BMI<22.9     |
    | 过重    |  22.9≤BMI<27.5  |
    | 肥胖    |  27.5≤BMI<40  |
    | 非常肥胖 |     BMI≥40      |
    
    ## BMI指数计算器
    本程序的源代码[链接](https://github.com/wang0618/PyWebIO/blob/dev/demos/bmi.py)
    
    """)

    信息 = 输入组('计算BMI：', [
        输入("请输入你的身高(cm)", 名称="身高", 类型='浮点数'),
        输入("请输入你的体重(kg)", 名称="体重", 类型='浮点数'),
    ])

    BMI = 信息['体重'] / (信息['身高'] / 100) ** 2

    临界值_状态 = [(14.9, '极瘦'), (18.4, '偏瘦'),
                  (22.9, '正常'), (27.5, '过重'),
                  (40.0, '肥胖'), (浮点型('inf'), '非常肥胖')]

    取 临界值, 状态 于 临界值_状态:
        如果 BMI <= 临界值:
            输出md(('你的 BMI 值: `%.1f`，身体状态: `%s`') % (BMI, 状态))
            跳出


如果  __名称__ == '__主体__':
    启动服务器(主函数, 调试=True, 端口=8080)